/* 
    后端路由-- 监听服务器上请求-不同路径上的请求，做出不同的处理，返回不同的数据（json数据-页面）

    前端路由--hash路由--history路由--改变页面中内容
*/
let express = require("express");

let app = express();

/*
    路由：
        请求方式 有很多
        get
        post
        put
        patch
        delete

        use（路径，中间件函数）
        use（路径，中间件函数1,中间件函数2,.....）
          监听这个路径下，所有的请求方式

          use里面没有写路径，这里可以处理 所有的请求
          只要中间处理函数调用了next 就会被下一个 中间件处理


*/

// log 日志处理中间
let log = require("./04-log.js");

app.use(log, function (req, res, next) {
  console.log("use 第二个中间函数");
  next();
});

// 中间件函数--专门来处理了一个功能-打印请求日志
// app.use(function (req, res, next) {
//   // use里面没有写路径，这里可以处理 所有的请求
//   console.log("有请求来了", req.method, req.url, new Date());
//   next();
// });

app.use("/todos", function (req, res, next) {
  // 中间件处理函数都有 三个参数-
  // 第一个 request 请求对象
  // 第二个 response 响应对象  res.json()
  // 第三个 参数是一个函数--名为 next，
  //      如果调用next 请求就会交给后面的路由去处理
  //      如果没有调用next 请求 必须在这个函数中 返回响应结果
  console.log("use /todos");
  next();
});
app.get("/todos", function (req, res) {
  // 返回了json数据
  res.json({ code: 1, msg: "获取todos列表" });
});
app.post("/todos", function (req, res) {
  // 返回了json数据
  res.json({ code: 1, msg: "发布todo" });
});
app.delete("/todos", function (req, res) {
  // 返回了json数据
  res.json({ code: 1, msg: "删除todo" });
});

app.patch("/todos", function (req, res) {
  // 返回了json数据
  res.json({ code: 1, msg: "修改todo" });
});

app.listen(3000, function () {
  console.log("http://localhost:3000");
  console.log("http://127.0.0.1:3000");
});
